package com.alander.nexusgo.itinerary.service;

import com.alander.nexusgo.common.model.dto.ItineraryListDTO;
import com.alander.nexusgo.common.model.vo.ItineraryVO;
import com.alander.nexusgo.itinerary.model.entity.Itinerary;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
* @author alander
*/
public interface ItineraryService extends IService<Itinerary> {
    /**
     * 创建行程
     * @param itinerary 行程信息
     * @param userId 用户ID
     * @return 行程VO
     */
    ItineraryVO createItinerary(Itinerary itinerary, Long userId);

    /**
     * 更新行程
     * @param id 行程ID
     * @param itinerary 更新的行程信息
     * @param userId 用户ID
     * @return 行程VO
     */
    ItineraryVO updateItinerary(Long id, Itinerary itinerary, Long userId);

    /**
     * 删除行程
     * @param id 行程ID
     * @param userId 用户ID
     * @return 是否删除成功
     */
    boolean deleteItinerary(Long id, Long userId);

    /**
     * 获取行程详情
     * @param id 行程ID
     * @return 行程VO
     */
    ItineraryVO getItineraryById(Long id);

    /**
     * 查询行程列表
     * @param itineraryListDTO 查询条件
     * @return 行程VO列表
     */
    List<ItineraryVO> listItineraries(ItineraryListDTO itineraryListDTO);
}